import axios from 'axios'
import { Toast } from 'vant'

// baseURL
// const baseURL = process.env.NODE_ENV === 'development' ? '开发测试服务器 baseURl' : '生产服务器baseURL'
const baseURL = ''

// 创建axios 实例
const service = axios.create({
  baseURL,
  timeout: 10000 // 请求接口时的超时时间
})

// 请求拦截
service.interceptors.request.use(config => {
  // 在青丘头中携带 token 传递到服务端进行认证
  // TODO...
  // config.header.token = token

  // 加载提示
  Toast.loading({
    message: '加载中...',
    duration: 0
  })

  return config
})

// 响应式拦截
service.interceptors.response.use(response => {
  // console.log('响应式拦截', response)
  // 关闭加载提示
  Toast.clear()

  // response.status 在 2xx 状态码时，表示请求成功
  if (response.status >= 200 && response.status < 300) {
    //  response.data 中保存的是后端接口返回的数据
    const { code, data } = response.data
    // 判断后端接口规范
    if (code === 200) {
      return data
    }
  }

  //   token 出现异常后的相应拦截处理
  const error = new Error('请求接口异常')
  error.reason = response
  Toast.fail({
    message: '请求接口异常...'
  })
  return Promise.reject(error)
})

// 导出创建的 axios 实例
export default service
